// 题目描述
// 按所给的时间格式输出指定的时间
// 格式说明
// 对于 2014.09.05 13:14:20
// yyyy: 年份，2014
// yy: 年份，14
// MM: 月份，补满两位，09
// M: 月份, 9
// dd: 日期，补满两位，05
// d: 日期, 5
// HH: 24制小时，补满两位，13
// H: 24制小时，13
// hh: 12制小时，补满两位，01
// h: 12制小时，1
// mm: 分钟，补满两位，14
// m: 分钟，14
// ss: 秒，补满两位，20
// s: 秒，20
// w: 星期，为 ['日', '一', '二', '三', '四', '五', '六'] 中的某一个，本 demo 结果为 五
function formatDate(oDate, sFormation) {
  var obj = {
    yyyy: oDate.getFullYear(),
    yy: oDate.getFullYear() % 100,
    M: oDate.getMonth() + 1,
    d: oDate.getDate(),
    H: oDate.getHours(),
    h: oDate.getHours() % 12,
    m: oDate.getMinutes(),
    s: oDate.getSeconds(),
    w: ['日', '一', '二', '三', '四', '五', '六'][oDate.getDay()],
  }
  return sFormation.replace(/([a-zA-Z]+)/g, function ($1) {
    return $1.length === 2 && $1 !== 'yy'
      ? ('0' + obj[$1.slice(1)]).slice(-2)
      : obj[$1]
  })
}
const res = formatDate(new Date(1409894060000), 'yyyy-MM-dd HH:mm:ss 星期w')
console.log(res)
